package org.cunamas.core.service;

import java.util.List;

import javax.faces.model.SelectItem;

import org.cunamas.core.bean.BudgetInputBean;
import org.cunamas.core.bean.LocalesBean;
import org.cunamas.core.bean.LogBean;
import org.cunamas.core.bean.ServiciosAlimentariosBean;
import org.cunamas.core.dto.AsistenciaGrupoEtareoDto;
import org.cunamas.core.dto.CoberturaAtencionDto;
import org.cunamas.core.dto.ComitesDesempenioDto;
import org.cunamas.core.dto.CulturaCrianzaDto;
import org.cunamas.core.dto.DesempenioAnioDto;
import org.cunamas.core.dto.DesempenioPracticaDto;
import org.cunamas.core.dto.Filtros;
import org.cunamas.core.dto.GraficoBarrasDto;
import org.cunamas.core.dto.PermanenciaDto;
import org.cunamas.core.dto.PracticasCrianzaDto;
import org.cunamas.core.dto.ReporteTotalMejDiagDto;
import org.cunamas.core.dto.ReporteTotalNiniosAtendidosDto;
import org.cunamas.core.dto.ReporteTotalNiniosDocDto;
import org.cunamas.core.dto.ReporteTotalProtegidosSo3Dto;
import org.cunamas.core.dto.ReporteTotalWwComFam3Dto;

public interface ReportesCunamasService {

	public abstract List<SelectItem> retornaDepartamentos();

	public abstract List<SelectItem> retornaProvincia(String dep);

	public abstract List<SelectItem> retornaDistrito(String pro);

	public abstract List<SelectItem> retornaSede(String dep);

	public abstract List<AsistenciaGrupoEtareoDto> retornaAsistenciaGrupoEtareo(
			Filtros filtros);

	public abstract List<CoberturaAtencionDto> retornaCoberturaAtencion(
			Filtros filtros);

	public abstract List<GraficoBarrasDto> retornaAtencionIntegralTallaEdad(
			Filtros filtros);

	public abstract List<GraficoBarrasDto> retornaAtencionIntegralPesoTalla(
			Filtros filtros);
	
	public abstract List<SelectItem> retornaComite(String ubigeo);
	
	public abstract List<PermanenciaDto> retornaPermanencia(Filtros filtros);
	
	public abstract List<GraficoBarrasDto> retornaDesempenoMadres(Filtros filtros);
	
	public abstract List<CulturaCrianzaDto> retornaCulturaCrianza(Filtros filtros);
	
	public abstract List<PracticasCrianzaDto> retornaPracticasCrianza(Filtros filtros);
	
	public abstract List<DesempenioPracticaDto> retornaDesempanioPractica(Filtros filtros);
	
	public abstract List<DesempenioAnioDto> retornaDesempanioAnio(Filtros filtros);
	
	public abstract List<ComitesDesempenioDto> retornaComiteDesempenio(Filtros filtros);
	
	public abstract List<ServiciosAlimentariosBean> retornaServiciosAlimentarios(Filtros filtros);
	
	public abstract List<LocalesBean> retornaLocales(Filtros filtros);

	public abstract List<BudgetInputBean> processBudgetReport(Long anio, Long mes);

	public abstract List<ReporteTotalMejDiagDto> retornaReporteTotalMejDiagDto(Filtros filtros);

	public abstract List<ReporteTotalNiniosAtendidosDto> retornaReporteTotalNiniosAtendidos(
			Filtros filtros);

	public abstract List<ReporteTotalNiniosDocDto> retornaReporteTotalNiniosDoc(Filtros filtros);

	public abstract List<ReporteTotalProtegidosSo3Dto> retornaReporteTotalProtegidosSo3Dto(
			Filtros filtros);

	public abstract List<ReporteTotalWwComFam3Dto> retornaReporteTotalWwComFam3Dto(
			Filtros filtros);

	public abstract void persistLog(LogBean log);
}